﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using KPIS.GERP.GBMS.MODEL;
using KPIS.GERP.GBMS.IBLL;
using KPIS.GERP.GBMS.DAL;

namespace KPIS.GERP.GBMS.BLL
{
    public enum ProjectProvider
    {
        Request, Approve, Recieve, Booking, Transfer
    }

    public class ProjectFactory
    {

        public static IProjectBLL GetProjectFactory(ProjectProvider pjType)
        {
            IProjectBLL pj = null;

            switch (pjType)
            {
                    // โครงการจากคำของบประมาณ
                case ProjectProvider.Request:
                    {
                        pj = new ProjectRequestBLL();
                        break;
                    }
                    // โครงการจากร่างคำของบประมาณ
                //case ProjectProvider.Approve:
                //    {
                //        pj = new ProjectApproveBLL();
                //        break; 
                //    }
                //    // โครงการจาก พรบ. งบประมาณ
                //case ProjectProvider.Recieve:
                //    {
                //        pj = new ProjectRecieveBLL();
                //        break;
                //    }
                //    // โครงการจาก เงินกันเหลื่อมปีงบประมาณ
                //case ProjectProvider.Booking:
                //    {
                //        pj = new ProjectBookingBLL();
                //        break;
                //    }
                //    // โครงการจาก โอนเปลี่ยนแปลงงบประมาณ
                //case ProjectProvider.Transfer:
                //    {
                //        pj = new ProjectTransferBLL();
                //        break;
                //    }
            }

            return pj;
        }

        public static IProjectExpenseBLL GetProjectExpenseFactory(ProjectProvider pjType)
        {
            IProjectExpenseBLL pj = null;

            switch (pjType)
            {
                // โครงการจากคำของบประมาณ
                case ProjectProvider.Request:
                    {
                        pj = new ProjectRequestExpenseBLL();
                        break;
                    }
                //// โครงการจากร่างคำของบประมาณ
                //case ProjectProvider.Approve:
                //    {
                //        pj = new ProjectApproveExpenseBLL();

                //        break;
                //    }
                //// โครงการจาก พรบ. งบประมาณ
                //case ProjectProvider.Recieve:
                //    {
                //        pj = new ProjectRecieveExpenseBLL();
                //        break;
                //    }
                //// โครงการจาก เงินกันเหลื่อมปีงบประมาณ
                //case ProjectProvider.Booking:
                //    {
                //        pj = new ProjectBookingBLL();
                //        break;
                //    }
                //// โครงการจาก โอนเปลี่ยนแปลงงบประมาณ
                //case ProjectProvider.Transfer:
                //    {
                //        pj = new ProjectTransferBLL();
                //        break;
                //    }
            }

            return pj;
        }

        public static IProjectOptionBLL GetProjectOptionFactory(ProjectProvider pjType)
        {
            IProjectOptionBLL pj = null;

            switch (pjType)
            {
                // โครงการจากคำของบประมาณ
                case ProjectProvider.Request:
                    {
                        pj = new ProjectRequestOptionBLL();
                        break;
                    }
                //// โครงการจากร่างคำของบประมาณ
                //case ProjectProvider.Approve:
                //    {
                //        pj = new ProjectApproveExpenseBLL();

                //        break;
                //    }
                //// โครงการจาก พรบ. งบประมาณ
                //case ProjectProvider.Recieve:
                //    {
                //        pj = new ProjectRecieveExpenseBLL();
                //        break;
                //    }
                //// โครงการจาก เงินกันเหลื่อมปีงบประมาณ
                //case ProjectProvider.Booking:
                //    {
                //        pj = new ProjectBookingBLL();
                //        break;
                //    }
                //// โครงการจาก โอนเปลี่ยนแปลงงบประมาณ
                //case ProjectProvider.Transfer:
                //    {
                //        pj = new ProjectTransferBLL();
                //        break;
                //    }
            }

            return pj;
        }


        public static IProjectKPIBLL GetProjectKpiFactory(ProjectProvider pjType)
        {
            IProjectKPIBLL pj = null;

            switch (pjType)
            {
                // โครงการจากคำของบประมาณ
                case ProjectProvider.Request:
                    {
                        pj = new ProjectRequestKPIBLL();
                        break;
                    }
                //// โครงการจากร่างคำของบประมาณ
                //case ProjectProvider.Approve:
                //    {
                //        pj = new ProjectApproveExpenseBLL();

                //        break;
                //    }
                //// โครงการจาก พรบ. งบประมาณ
                //case ProjectProvider.Recieve:
                //    {
                //        pj = new ProjectRecieveExpenseBLL();
                //        break;
                //    }
                //// โครงการจาก เงินกันเหลื่อมปีงบประมาณ
                //case ProjectProvider.Booking:
                //    {
                //        pj = new ProjectBookingBLL();
                //        break;
                //    }
                //// โครงการจาก โอนเปลี่ยนแปลงงบประมาณ
                //case ProjectProvider.Transfer:
                //    {
                //        pj = new ProjectTransferBLL();
                //        break;
                //    }
            }

            return pj;
        }

        //public static IProjectExpensePlanBLL GetProjectExpensePlanFactory(ProjectProvider pjType)
        //{
        //    IProjectExpensePlanBLL pj = null;

        //    switch (pjType)
        //    {
        //        // โครงการจากคำของบประมาณ
        //        case ProjectProvider.Request:
        //            {
        //                pj = new ProjectRequestExpensePlanBLL();
        //                break;
        //            }
        //        // โครงการจากร่างคำของบประมาณ
        //        case ProjectProvider.Approve:
        //            {
        //                pj = new ProjectApproveExpensePlanBLL();

        //                break;
        //            }
        //        // โครงการจาก พรบ. งบประมาณ
        //        case ProjectProvider.Recieve:
        //            {
        //                pj = new ProjectRecieveExpensePlanBLL();
        //                break;
        //            }
        //        //// โครงการจาก เงินกันเหลื่อมปีงบประมาณ
        //        //case ProjectProvider.Booking:
        //        //    {
        //        //        pj = new ProjectBookingBLL();
        //        //        break;
        //        //    }
        //        //// โครงการจาก โอนเปลี่ยนแปลงงบประมาณ
        //        //case ProjectProvider.Transfer:
        //        //    {
        //        //        pj = new ProjectTransferBLL();
        //        //        break;
        //        //    }
        //    }

        //    return pj;
        //}
    }
}
